Эх... Странные вопросы задаешь. Выделяешь/выбираешь тригггер, жмешь правка - конвентировать в текст
А про последствия не понял, разве бой своего юнита с чужим не есть отслеживание последствий?
отпечатка, случайно написал не. Да это последствие. По-другому никак.
Вот самый простой вариант от неуязвимости и всемогущества whosyourdaddy, который переводится как "кто твой папочка":
Создаешь юнита в РО, так сказать будет куклой для битья. Если она умрет, то значит ее убили нечестным образом.
Юнита надо будет отредактировать
Делаем куклу незаметной. Так сказать нужно скрыть.Удаляешь у нее модель, потом скрываешь отображение на мини-карте (характеристики - скрыть мини-карту).
Если это рабочий то выключить у него классификация - работник. Иначе иконка будет отображаться в игре.
Делаешь так чтобы не мог атаковать, короче полностью отключаешь атаку (бои - атаки - нет)
Делаешь его неподвижным, чтобы не убегал, когда его бьют
Делаем неубиваемым. Реген. Скорость восстановления здоровья на максимум - 9999к. Запас здоровья тоже повыше (примечание: здоровье не должно быть слишком большим, а то ставил 9999к читом не мог убить, даже с 5000 хп,видимо из-за регена не умирал, поставил 1000). Затем можно дать невосприимчивость от магии, так сказать защитой от магии будет.
даем способность москиты, так герой становится невыделяемый
и убираем обзор видимости (характеристики - радиус обзора = 0 днем и ночью)
создаем двух таких на карте, одного делаем вражеским (можно за нейтрально-враждебного), а другого за игрока
создаем триггер, который будет наносить урон периодически от лица игрока, наносит 1 единицу урон. другой триггер ловит смерть
Все работает. работает с специальными переменными, типа GetFilterUnit(). Вообще это условие, если это условие (фильтр) истинно, то этого юнита (GetFilterUnit), подходящего по условию, оставляет, а остальных отсеивает. У тебя, если условие истинно, выбирает всех. Мне кажется не работает. потому что радиус слишком маленький 90 - слишком маленький, едва ли кого выделишь. Надо еще дебагом проверять (выводи на экран) и проверяй кол-во юнитов в группе. Так написал, что не понятно, что тебе нужно. И вопрос закрыт? (закрой тему)
чтобы глобалки объявлять скачай jngp, подключи jasshelper (V jass)
хотя ладно я сейчас добрый так что лови совет
вместо игрок 1 используй владелец выбранного юнита
и вместо того чтобы сразу добавлять ресурсы заноси их в переменную
и добавляй в конце Nosferoh, сори но то что ты сказал это не оптимально
зачем усложнять ?
Если в триггере много действий, загружающих память, то лучше не использовать малый период. А если в нём ещё утечки памяти, то рано или поздно лаги сделают игру невозможной.
По сути, и таймер, и периодическое событие запускают действия в определённое время, то есть действуют одинаково. Смотри, что тебе удобнее.
ClotPh, Движок знает во время завершения удара, будет промах или нет, сработает пассивка или нет, а ты нет, там не так все просто, так что триггерные аналоги изобретаем и усе.
Странное понимание механики. Не бывает универсального лучшего способа, потому и существуют разные способы для конкретных ситуаций.
А экономить байты и такты процессора, заранее пользуясь интерпретируемым скриптовым языком, это вообще моветон.
Разве массив в WarCraft III не предынициализирует 8192 ячейки памяти (по Вашей формуле, в моём случае он потребляет 8192*4=32768 байт, то есть 32Кб)? Он ведь не динамический.
Нет, он динамический. Исходный размер при создании - 1024. И расширяется на 1024 ячейки по мере доступа вплоть до максимальных 8192.
Ну как бы диологовые окна работают как как их сделали, раз вы сделали диалок для одного игрока то его и видит 1 игрок.
Диалоговое окно нужно показывать всем играющим игрокам, и создавать триггер (на гуях проще 1 кнопка=1 триггер который следит за кнопной) и по нажатию кнопки смотреть какой игрок нажал на кнопку и создавать для него необходимого персонажа.
Сделай плюсик в качестве способности-пустышки.
При её использовании создавай/выделяй юнита-пустышку, у которого есть способности-пустышки, соответствующие способностям героя.
При использовании этих пустышек будет прокачиваться способность героя.
в чем редактор вкв3 отличается от редактора ск2 - к сожалению, в вк3-шном эдиторе не удастся отловить все данные.
если ты скажешь, что конкретно делает твой спелл, тебе могут подсказать более легкий вариант исполнения
насчет спецэффектов - утечка решается просто
создаешь точку, если спец на земле. если спец на юните, точка не требуется.
собсно воспроизводишь спец
и сразу его удаляешь. спец удалится тогда, когда доиграет до конца его анимация
кастом скриптом удаляешь точку, если 1 часть 1 пункта актуальна
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
Можно от даммика развеяние нежити за 0.01 сек.
Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
Можно сделать способность на основе "превращения в зомби" с передачей контроля игроку. И сделать дамми работников, которые будут в невидимости таскать золото, в зависимости от кол-во рабов на борту рудника.
Можно сделать невидимое "Древо Жизни" которое привязано к зданию и живет до тех пор, пока живет главное здание, главное связать здания триггерно.
Я придумал закинуть пустить корни в книгу заклинаний и заблокировал ее, в вобщем оплетение работает, сейчас другая проблема в другом вопросе))
На сайте имеется статья. Если же тебя интересует как сделать чтобы эти расы можно было выбирать в меню игры, а не непосредственно в игре - ищи в гугле [Warcraft 3 Nirvana Mod]. Отвечая на вопрос: возможно.
Local integer i = случайное число от 1 до 3
Local integer h = случайное число от 1 до 3
Local integer j = 0
Local integer k = взять кол-во юнитов в области locations[h]
Local location p
If k < 1 then
Set p = GetRectCenter( locations[h] )
Call createUnitAtLoc( buildings[i], player(0), p )
Loop
Exitwhen j > 3
Call createUnitAtLoc( units[i], player(0), p )
Set j = j + 1
Endloop
Call removeLocation(p)
Set p = null
Endif
Это число обозначает, сколько элементов массива заполняется в начале игры значением по умолчанию. Настоящий размер массива всегда 8192.
Т.е. если ты ставишь "Раз. 3" и "Нач. знач. 1", то первые 3 элемента массива будут равны 1, а значение следующих будет неопределенным.
Чето совершенно непонятно что вам нужно, найти тот таймер и его индекс в массиве, который истек и запустил триггер?
Ну очень просто , перебором в цикле всех таймеров и смотреть кто истек, тот кто истек того индекс вы и получите, считая шаги цикла.
В чем проблема?.
(100+ таймеров и массив по мне идиотия, неужели нельзя было воспользоваться хештаблицей и создавать\удалять таймеры по мере надобности)
Полагаю, действия "группа игроков" - лишние. Просто пикай юнитов. И не в регионе, а в радиусе. Там должно быть действие "пикнуть юнитов в радиусе, которые соответствуют каким-то условиям". Вот в matching condition и проверяй "правильность" юнита.
на сколько я понял твой триггер срабатывает при получении урона определённым юнитом
и ты вызываешь в нём этот триггер
который наносит урон этому самому юниту
в результате опять срабатывает отлов урона
и опять наносится урон
и опять ...
в общем получается рекурсия и вар выкидывает из за переполнения стека
кстати почему бы не сделать отлов урона в 1 триггере?
Hate, мне нужен рабочий вариант чтоб меняя свои данные я понял что влияет на работоспособность,а что нет.В твоей же я увидел цифры по 15сек думал атк и будет работать,а на деле только 9 сек рабочих.Напрашивается вывод где из всех тех цифр отвечающие за продолжительность. Может у кого есть уже наработка с хотами,дотами,периодическими событиями,киньте будьте добры,буду разбираться.
это и есть рабочий вариант, слов нет.
там урон наносится каждые 5 секунд в течении 15, если бы вы потратили хоть толику внимания на гребаные триггеры вы бы заметили цифры которые там есть
Ну можно триггерно их "строить", когда нужно получать % их готовности.
Здание закладывать и паузить, триггерно увеличивать переменную и приравнивать в ней текущий % постройки.
Работоспособно.
Да. Сам id-приказ - равкод постройки (или тип постройки). У рабочего открывается меню строительства, выбираешь постройку, нажимаешь на иконку. Но ничего не происходит, так как надо еще для окончательного результата выбрать место строительства. Через событие "юнит - получил приказ (точка)" ловится приказ в тот момент, когда юнит получил приказ и побежал устанавливать основание. И точку приказа можно отследить.
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
Решил проблему следующим путем: при несовпадении данных в Memory, заставляем читера выделить специального скрытого в тумане войны юнита, а в другом триггере по событии выделения пишем, что GetTriggerPlayer() - МХшник, и только потом кикаем его. quq_CCCP:
Для бана нужна работа с хост ботом
Ты неправильно понял. Если люди по Гарене играют, то они должны знать, что игрок отключается по неуважительной причине, чтобы сразу его забанить и потом не париться с ним. Бан-то локальный в Гарене, не то что на хост-боте.
void Damage_Text() {
unit u1 = GetEventDamageSource(),u2=GetTriggerUnit()
real x = GetRandomReal(GetUnitX(u2)-30,GetUnitX(u2)+30)
real y = GetRandomReal(GetUnitY(u2)-30,GetUnitY(u2)+30)
real z = GetRandomInt(30,70)
string text = I2S(R2I(GetEventDamage()))//переводим урон в строку
texttag tt = CreateTextTag()
if GetEventDamage()>0 and (IsUnitInGroup(u1,Pdmg) or IsUnitInGroup(u1,Sdmg)) then
SetTextTagVisibility(tt,false)//делаем тексттег невидимым
if IsUnitInGroup(u1,Crit) then
text=Yellow+"!|r "+text
endif
SetTextTagText(tt,text,0.023)
if GetLocalPlayer()==GetOwningPlayer(u1) then//делаем тексттег видимым локальным игрокам
SetTextTagColor(tt,255,255,255,230)
SetTextTagVisibility(tt,true)
elseif GetLocalPlayer()==GetOwningPlayer(u2) then
SetTextTagColor(tt,200,0,0,230)
SetTextTagVisibility(tt,true)
endif
SetTextTagPos(tt,x,y,z)
SetTextTagPermanent(tt,false)
SetTextTagVelocityBJ(tt,50,90)
SetTextTagFadepoint(tt,0.5)
SetTextTagLifespan(tt,1)
endif
tt=null
u2=null
u1=null
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.
Иллюзии недо-юниты, они не могут использовать активки и предметы, лишь некоторые пассивки работают у иллюзий ( втом. числе и те что добавили триггерно).
Иллюзий найти плевое дело, есть проверка IsUnitIllision а так же событие Юнит призвал вызванное существо, ибо все иллюзии суммоны от конкретных способностей, создать иллюзию триггерно, без способности и юнита не получится...
Если вам нужны именно клоны героя (как арк варден в доте или мипо) то вам нужно создавать героя, обнулять у него все лишнее (вроде отображать как героя на карте команд, скрыть сообщение о гибели), так же необходимо триггерное слежение за такой иллюзией.
Может проще будет после постройки здания сделать reset animation - на trigger unit
Увы, не работает.
Одним словом, я просто взял модель виспа, удалил у него все анимации, кроме stand, импортировал в карту, прописав путь к файлу, как к файлу модели оригинального виспа.
Никак.
Хотя если рыть очень глубоко с шрифтами, то возможно одна из категорий шрифта отвечает за эту циферку. Если повезёт - она при этом не будет отвечать ни за какие другие экранные шрифты в игре. Заменить шрифт в этой категории на малюсенький или бесцветный какой-нить - вот и удалили циферку. Как менять щрифт в карте отдельная статья.
Никого не слушай учись на картах близов, там есть все.
Смотри как устроены модели, эфекты и текстуры, особенно ланшафт, только не смотри как устроены здания как декорации(построение города), там фантазия их подвела.
Ну, во - первых, есть вот этот пак: xgm.guru/p/wowmodels/winterdoodads
если не подходит, импортируй текстуру, которую я делал для одной карты и задай ей путь в менеджере импорта textures\Ruins_PlantLife.blp и перезагрузи карту, она заменит стандартные модельки кустов, грибов и лозы на "зимние". Текстуру прилагаю.
» WarCraft 3 / Угол крена
» WarCraft 3 / Читы
» WarCraft 3 / Вопрос инкома
» WarCraft 3 / Проверка включенного триггера используя триггеры
» WarCraft 3 / 1 защиты = 1% блока
» WarCraft 3 / Декорации (база)
» WarCraft 3 / Выбор героев
» WarCraft 3 / Покупка спелов
» WarCraft 3 / Строчка
» WarCraft 3 / Оплетение рудника
» WarCraft 3 / Рандом выбор .
» WarCraft 3 / Напомните название карты
» WarCraft 3 / Массивы
» WarCraft 3 / Нанесение урона
» WarCraft 3 / Идентификаторы юнитов
» WarCraft 3 / Строительство
» WarCraft 3 / Стандартные способности
» WarCraft 3 / Локальные
» WarCraft 3 / Способность
» WarCraft 3 / Проиграть анимацию
» WarCraft 3 / Пропадание модели
» WarCraft 3 / незанятый рабочий
» WarCraft 3 / Нужна моделька.